package com.likou;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

/**
 * Author: 陈桂明
 * Date: 2024/9/19 22:42
 * Description: q1
 */
public class Q1 {
    public static void main(String[] args) {
        Q1 q1 = new Q1();
        int[] nums = new int[]{2, 7, 11, 15};
        int target = 9;
        int[] index = q1.twoSum(nums, target);

    }

    // 方法一：暴力枚举
    // public int[] twoSum(int[] nums, int target) {
    //     int[] index = new int[2];
    //     for (int i = 0; i < nums.length; i++) {
    //         for (int j = i + 1; j < nums.length; j++) {
    //             int res = nums[i] + nums[j];
    //             if (res == target) {
    //                 index[0] = i;
    //                 index[1] = j;
    //             }
    //         }
    //     }
    //     // System.out.println(Arrays.toString(index));
    //     return index;
    // }

    // 方法二：哈希表
    public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> map = new HashMap<>();
        int[] index = new int[2];
        for (int i = 0; i < nums.length; i++) {
            if (map.containsKey(target - nums[i])) {
                index[0] = map.get(target - nums[i]);
                index[1] = i;
            }
            map.put(nums[i], i);
        }

        return index;
    }
}
